package com.ssyt.yt1.day4.oop;

/**
 * 描述一个人的类（模型/模版）
 * 
 * @author Administrator
 *
 */
public class Person {

	// 属性
	String name;
	int age;

	// 方法
	public void run() {
		System.out.println(name + "在跑...");
	}

	public void introduce() {
		System.out.println("我的姓名：" + name + ", 我的年龄：" + age);
	}

	/**
	 * 根据类（模型/模版）生成一个具体的对象
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// 面向对象编程
		// 1、优点：使用面向对象编程代码的复用性提高了
		// 2、步骤：首先要抽象一个类（创建一个模版），然后再根据类（模版）去生成一个具体的对象

		// 根据类（抽象）生一个对象（具体）
		Person zhangsan = new Person();
		// 设置属性和方法
		zhangsan.name = "张三";
		zhangsan.age = 18;
		// 打印属性和方法
		System.out.println("name:" + zhangsan.name + ",age:" + zhangsan.age);
		zhangsan.introduce();
		zhangsan.run();

		// 根据类（抽象）生一个对象（具体）
		Person lisi = new Person();
		// 设置属性和方法
		lisi.name = "李四";
		lisi.age = 18;
		// 打印属性和方法
		System.out.println("name:" + lisi.name + ",age:" + lisi.age);
		lisi.introduce();
		lisi.run();

		// NullPointerException，原因就是没有指向堆空间！
		// Person wangwu = null;
		// wangwu.run();
	}
}
